Questions
29 of 50
1What is a pseudo-class in CSS?
2How are pseudo-classes different from pseudo-elements?
3What is the syntax of a pseudo-class in CSS?
4Give some commonly used pseudo-classes.
5What does the :hover pseudo-class do?
6What’s the purpose of the :active pseudo-class?
7How does the :visited pseudo-class work for links?
8What is the :focus pseudo-class used for?
9What does the :checked pseudo-class do?
10How does the :disabled pseudo-class behave?
11What is the difference between :first-child and :first-of-type?
12How do :nth-child() and :nth-of-type() differ?
13How do you select every odd or even element using pseudo-classes?
14How can you style an element when it’s being hovered over along with its child?
15What does the :not() pseudo-class do?
16How can you use multiple pseudo-classes together?
17What is the difference between :link and :visited?
18What does the :target pseudo-class represent?
19How can you use :empty to detect empty elements?
20How does the :root pseudo-class differ from the html selector?
21What does the :valid and :invalid pseudo-class do?
22How can you use :required and :optional pseudo-classes in forms?
23What is the use of :in-range and :out-of-range?
24What does :read-only and :read-write do?
25How can you style an input field when it’s autofilled?
26How does the :focus-within pseudo-class work?
27What’s the difference between :focus and :focus-visible?
28What is the purpose of the :placeholder-shown pseudo-class?
29How can you style a checkbox when it is checked or unchecked?
30How can you style invalid form inputs without JavaScript?
31Can pseudo-classes be chained together? Give an example.
32What is the specificity of pseudo-classes compared to normal selectors?
33How can you use :not() effectively to exclude elements from styling?
34How does :has() pseudo-class work, and why is it powerful?
35Is :has() supported in all browsers?
36How does :is() differ from :where() in terms of specificity?
37How can you combine :is() or :where() with other selectors for cleaner code?
38What’s the difference between :nth-child() and :nth-last-child()?
39How can you style only the last element of a list using pseudo-classes?
40What does the :lang() pseudo-class do?
41How do you change a button’s color when hovered but not when disabled?
42How can you highlight the current section in a menu using :target?
43How can you style a form field differently when focused and valid?
44How do you style every third list item differently?
45How can you style alternate table rows without adding extra classes?
46How do you hide empty <p> tags using pseudo-classes?
47How can you style the parent when any child inside it is focused?
48How can you highlight a link only when it’s both focused and hovered?
49How can you style the first letter of only the first paragraph using pseudo-classes?
50How would you use :has() to select a <div> that contains an image?
29 / 50

How can you style a checkbox when it is checked or unchecked?

Styling Checkboxes with :checked Pseudo-Class in CSS

The :checked pseudo-class in CSS allows you to style form elements like checkboxes and radio buttons based on whether they are selected (checked) or not. This enables dynamic visual feedback for user interactions.

Key Points About :checked
  1. 1

    :checked – Selects checkboxes or radio buttons that are currently checked.

  2. 2

    Can be combined with adjacent sibling selectors or general sibling selectors to style related elements when a checkbox is checked.

  3. 3

    Useful for custom checkbox styles, toggle switches, and interactive UI elements without JavaScript.

Example: Styling Checkboxes When Checked

In this example, when a checkbox is checked, the associated label text turns green and bold, providing a clear visual indication of the checked state.

Best Practices
  1. 1

    Use :checked to style both the checkbox and related elements for better UX.

  2. 2

    Combine with transitions for smooth state changes.

  3. 3

    Ensure accessibility by maintaining sufficient contrast and using semantic HTML.

  4. 4

    Test across browsers, as custom styling of checkboxes may require vendor prefixes or additional CSS for consistent appearance.

Difficulty: 3/10
Topics: CSS pseudo-classes, custom checkbox styling, accessibility compliance

Scenario Questions

0-2 years experience
  1. 1

    How would you make a custom checkbox turn green when checked, using only CSS?

  2. 2

    What happens if you try to style the input[type='checkbox'] directly with background-color? Why doesn't it work?

  3. 3

    You're given a design where the checkbox should show a checkmark icon when selected — how do you implement that without JavaScript?

2-5 years experience
  1. 1

    A teammate says the custom checkbox isn't working in Safari — what would you check first, and why?

  2. 2

    Our form’s custom checkboxes look fine in light mode, but break in dark mode — how do you debug and fix this without duplicating styles?

  3. 3

    Users report the checkbox doesn’t respond to keyboard spacebar — what CSS or HTML issue might be causing this?

5-8 years experience
  1. 1

    We have 50+ custom checkboxes on a single page and users report lag on mobile — how would you optimize the CSS and structure for performance?

  2. 2

    Our design system needs to support 3 states: checked, unchecked, and indeterminate — how do you implement this cleanly across components without bloating CSS?

  3. 3

    A third-party library overrides our checkbox styles unexpectedly — how do you ensure specificity and maintainability without !important?

8+ years experience
  1. 1

    We’re migrating from a legacy checkbox component that used JavaScript for state — how do you plan the CSS-only transition without breaking accessibility or analytics tracking?

  2. 2

    Our design system supports 12 global themes — how do you architect checkbox styling to scale across themes without exponential CSS bloat or runtime overhead?

  3. 3

    A compliance audit found our custom checkboxes fail WCAG 2.2 contrast requirements on some devices — how do you redesign the approach to ensure long-term accessibility compliance across platforms?

Follow-up Questions

  • What happens if you forget to hide the native checkbox?
  • How would you test this works on a screen reader?
  • Why not just use a <div> instead of an actual checkbox input?